# Check requisite packages are installed.
packages <- c(
"plotly",
"dplyr"
)
for (pkg in packages) {
library(pkg, character.only = TRUE)
}
Disentangling Effects on the Viking Data
Load Data
ellipsisApply <- function(..., FUN) {
lapply(as.list(...), FUN)
}
load("LM1996-NumPoolCom-QDat-2021-05.RData")
# Stop if not all are not null
stopifnot(all(unlist(ellipsisApply(
FUN = function(bool) {!is.null(bool)},
candidateData,
islandInteractionsOneEmptyTwo,
islandInteractionsOneTwo,
mats,
paramFrame,
plotScalingData,
pools
))))
plotScaling <- plotly::plot_ly(
plotScalingData,
x = ~Basals,
y = ~Consumers,
z = ~CommunitySize,
color = ~Dataset,
colors = c("red", "blue", "black")
)
plotScaling <- plotly::add_markers(plotScaling)
plotScaling <- plotly::layout(
plotScaling,
scene = list(
xaxis = list(type = "log"),
yaxis = list(type = "log"),
camera = list(
eye = list(
x = -1.25, y = -1.25, z = .05
)
)
)
)
plotScaling
Persistence of Hybrid Communities
The idea is straightforward: after allowing interactions between islands, for islands that are not the same as one of the original communities, isolate the island and check to see what happens.
Invadability of Hybrid Communities
Looking at a longer time scale, what happens if/when invasions resume? Do the hybrid communities that emerged retain the uninvadability of the parent communities?
Presence of Mass Effects
We check to see what happens when we treat each community as a pool for the other and perform assembly. Are the results the same as the diffusion system?
Indirect Mutualism
Here, we check to see if the networks created by each community (hybrid or otherwise) has mutualism embedded in it.
LS0tDQp0aXRsZTogIkFuc3dlcmluZyBRdWVzdGlvbnM7IEdhdGhlciBEYXRhLCAyMDIxLTA1Ig0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOg0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KLS0tDQoNCmBgYHtyIGxpYnN9DQojIENoZWNrIHJlcXVpc2l0ZSBwYWNrYWdlcyBhcmUgaW5zdGFsbGVkLg0KcGFja2FnZXMgPC0gYygNCiAgInBsb3RseSIsIA0KICAiZHBseXIiLA0KICAiUk1UUkNvZGUyIg0KKQ0KZm9yIChwa2cgaW4gcGFja2FnZXMpIHsNCiAgbGlicmFyeShwa2csIGNoYXJhY3Rlci5vbmx5ID0gVFJVRSkNCn0NCg0KIyBSZXNlcnZlZCBOYW1lcw0KY2FuZGlkYXRlRGF0YSA8LSBOVUxMDQppc2xhbmRJbnRlcmFjdGlvbnNPbmVFbXB0eVR3byA8LSBOVUxMDQppc2xhbmRJbnRlcmFjdGlvbnNPbmVUd28gPC0gTlVMTA0KbWF0cyA8LSBOVUxMDQpwYXJhbUZyYW1lIDwtIE5VTEwNCnBsb3RTY2FsaW5nRGF0YSA8LSBOVUxMDQpwb29scyA8LSBOVUxMDQpgYGANCg0KIyBEaXNlbnRhbmdsaW5nIEVmZmVjdHMgb24gdGhlIFZpa2luZyBEYXRhIHsudGFic2V0fQ0KDQojIyBMb2FkIERhdGENCmBgYHtyIGxvYWREYXR9DQplbGxpcHNpc0FwcGx5IDwtIGZ1bmN0aW9uKC4uLiwgRlVOKSB7DQogIGxhcHBseShhcy5saXN0KC4uLiksIEZVTikNCn0NCg0KbG9hZCgiTE0xOTk2LU51bVBvb2xDb20tUURhdC0yMDIxLTA1LlJEYXRhIikNCiMgU3RvcCBpZiBub3QgYWxsIGFyZSBub3QgbnVsbA0Kc3RvcGlmbm90KGFsbCh1bmxpc3QoZWxsaXBzaXNBcHBseSgNCiAgRlVOID0gZnVuY3Rpb24oYm9vbCkgeyFpcy5udWxsKGJvb2wpfSwNCiAgY2FuZGlkYXRlRGF0YSwgDQogIGlzbGFuZEludGVyYWN0aW9uc09uZUVtcHR5VHdvLA0KICBpc2xhbmRJbnRlcmFjdGlvbnNPbmVUd28sDQogIG1hdHMsDQogIHBhcmFtRnJhbWUsDQogIHBsb3RTY2FsaW5nRGF0YSwNCiAgcG9vbHMNCikpKSkNCmBgYA0KDQpgYGB7ciB0ZXN0UGxvdH0NCnBsb3RTY2FsaW5nIDwtIHBsb3RseTo6cGxvdF9seSgNCiAgcGxvdFNjYWxpbmdEYXRhLA0KICB4ID0gfkJhc2FscywNCiAgeSA9IH5Db25zdW1lcnMsDQogIHogPSB+Q29tbXVuaXR5U2l6ZSwNCiAgY29sb3IgPSB+RGF0YXNldCwNCiAgY29sb3JzID0gYygicmVkIiwgImJsdWUiLCAiYmxhY2siKQ0KKQ0KDQpwbG90U2NhbGluZyA8LSBwbG90bHk6OmFkZF9tYXJrZXJzKHBsb3RTY2FsaW5nKQ0KDQpwbG90U2NhbGluZyA8LSBwbG90bHk6OmxheW91dCgNCiAgcGxvdFNjYWxpbmcsDQogIHNjZW5lID0gbGlzdCgNCiAgICB4YXhpcyA9IGxpc3QodHlwZSA9ICJsb2ciKSwNCiAgICB5YXhpcyA9IGxpc3QodHlwZSA9ICJsb2ciKSwNCiAgICBjYW1lcmEgPSBsaXN0KA0KICAgICAgZXllID0gbGlzdCgNCiAgICAgICAgeCA9IC0xLjI1LCB5ID0gLTEuMjUsIHogPSAuMDUNCiAgICAgICkNCiAgICApDQogICkNCikNCg0KcGxvdFNjYWxpbmcNCmBgYA0KDQojIyBQZXJzaXN0ZW5jZSBvZiBIeWJyaWQgQ29tbXVuaXRpZXMNClRoZSBpZGVhIGlzIHN0cmFpZ2h0Zm9yd2FyZDogYWZ0ZXIgYWxsb3dpbmcgaW50ZXJhY3Rpb25zIGJldHdlZW4gaXNsYW5kcywgZm9yIGlzbGFuZHMgdGhhdCBhcmUgbm90IHRoZSBzYW1lIGFzIG9uZSBvZiB0aGUgb3JpZ2luYWwgY29tbXVuaXRpZXMsIGlzb2xhdGUgdGhlIGlzbGFuZCBhbmQgY2hlY2sgdG8gc2VlIHdoYXQgaGFwcGVucy4NCg0KIyMgSW52YWRhYmlsaXR5IG9mIEh5YnJpZCBDb21tdW5pdGllcw0KTG9va2luZyBhdCBhIGxvbmdlciB0aW1lIHNjYWxlLCB3aGF0IGhhcHBlbnMgaWYvd2hlbiBpbnZhc2lvbnMgcmVzdW1lPyBEbyB0aGUgaHlicmlkIGNvbW11bml0aWVzIHRoYXQgZW1lcmdlZCByZXRhaW4gdGhlIHVuaW52YWRhYmlsaXR5IG9mIHRoZSBwYXJlbnQgY29tbXVuaXRpZXM/DQoNCiMjIFByZXNlbmNlIG9mIE1hc3MgRWZmZWN0cw0KV2UgY2hlY2sgdG8gc2VlIHdoYXQgaGFwcGVucyB3aGVuIHdlIHRyZWF0IGVhY2ggY29tbXVuaXR5IGFzIGEgcG9vbCBmb3IgdGhlIG90aGVyIGFuZCBwZXJmb3JtIGFzc2VtYmx5LiBBcmUgdGhlIHJlc3VsdHMgdGhlIHNhbWUgYXMgdGhlIGRpZmZ1c2lvbiBzeXN0ZW0/DQoNCiMjIEluZGlyZWN0IE11dHVhbGlzbQ0KSGVyZSwgd2UgY2hlY2sgdG8gc2VlIGlmIHRoZSBuZXR3b3JrcyBjcmVhdGVkIGJ5IGVhY2ggY29tbXVuaXR5IChoeWJyaWQgb3Igb3RoZXJ3aXNlKSBoYXMgbXV0dWFsaXNtIGVtYmVkZGVkIGluIGl0Lg0K